京都の町境界を描き「両側町」を眺めてみる('24.05.26)#

京都四条烏丸あたり、小さな町がたくさんある#

京都の四条烏丸あたりを歩いていると、少し先に進むと、電柱に表示された町名がすぐに変わっていく。 小さな町がたくさんあって、ほんのちょっと歩くだけで、違う町に入る。

そこで、標準地域コード 一覧 | 国勢調査町丁・字等別境界データセット の京都府から、京都市の町境界データ(TopoJSON)をダウンロードして、地図上に描いてみた。 一目瞭然、中京区を中心とした辺りは、町と町の境界が見えないくらい、小さな町が多くあることがわかる。

Hide code cell source
# foliumパッケージを使う
import folium

# TopoJsonデータ
topojson_files={
    '上京区':'r2ka26102.topojson',
    '左京区':'r2ka26103.topojson',
    '右京区':'r2ka26108.topojson',
    '東山区':'r2ka26105.topojson',
    '西京区':'r2ka26111.topojson',
    '中京区':'r2ka26104.topojson',
    '下京区':'r2ka26106.topojson',
    '伏見区':'r2ka26109.topojson',
    '山科区':'r2ka26110.topojson',
    '南区':'r2ka26107.topojson',
    '北区':'r2ka26101.topojson'}

# 中心とする緯度経度
kyoto = [35.003732868274874, 135.756665888083]

# 地図を作る
def create_map(zoom_level):
    fmap = folium.Map(
        location=kyoto,
        zoom_start=zoom_level,
        attr='OpenStreetMap & GeoNLPプロジェクト'
    )
    for k,v in topojson_files.items():
        topojson_path = './data/day_240526_'+v
        folium.TopoJson(
            data=open(topojson_path, encoding='utf-8'),
            object_path='objects.town',
            name=k
        ).add_to(fmap)    
    folium.LayerControl().add_to(fmap)
    return fmap # 表示
    
create_map(13)
Make this Notebook Trusted to load map: File -> Trust Notebook

格子模様に走る通りに対し、45度回転した町の境界線#

さらに拡大して眺めて見ると、南北東西に走る京都の道に対して、街の境界は傾いた菱形になっている。 町の境界線が描くデカルト座標系は、道路が作るデカルト座標系に対して、ほぼ45度に回転していて、何だかとても美しい。

create_map(16)
Make this Notebook Trusted to load map: File -> Trust Notebook

通りに面して町ができた「両側町」#

この構造の原因は、まず平安京の通りが「格子模様」に作られたことがある。 そして、それから年月を経た15〜16世紀頃に「通りに面した=通りを共有する場所が”同じ町”となる、「両側町」が生まれたことにより、この幾何学的な美しさが生まれた。

町境界を地図に描いてみると、歴史が浮かびあがってきたりするのは、とても面白い。